/*
 * 版权所有 ( c ) 联想集团有限公司 2005-2009 保留所有权利。
 * 项目：	Lenovo Push Service
 * 文件名：	JSONUtil.java
 * 版本:    1.0
 * 描述：	
 * 作者：	刘兵召
 * 日期：	Jul 13, 2010 
 * 修改历史：
 * 【时间】		【修改者】	【修改内容】
 */
package com.feng.util;

import java.io.StringWriter;
import java.util.List;
import java.util.Map;

import org.codehaus.jackson.map.ObjectMapper;

import com.lenovo.lps.log.Log;

public class JSONUtil {
	private static final Log log = Log.getInstance(JSONUtil.class);
	public static ObjectMapper mapper = new ObjectMapper();
	private static JSONUtil jsonUtil = null;

	private JSONUtil() {
	}
	public static JSONUtil getInstance(){
		if (jsonUtil == null)
			jsonUtil = new JSONUtil();
		return jsonUtil;
	}

	public String fromObject(Object obj) throws Exception {
		StringWriter stringWriter = new StringWriter();
		mapper.writeValue(stringWriter, obj);
		return stringWriter.toString();
	}
	public List<?> toList(String json) throws Exception {
		log.debug("Get json string is:"+json);
		return mapper.readValue(json, List.class);
	}
	public Map<?,?> toMap(String json) throws Exception {
		return mapper.readValue(json, Map.class);
	}
	
	/*public UserInstallAppList toUserInstallAppList(String json) throws Exception {
		return mapper.readValue(json, UserInstallAppList.class);
	}*/
	public static void main(String [] args) throws Exception{
		JSONUtil util = JSONUtil.getInstance();
		String s  = "[{\"isliteversion\":false,\"appid\":121,\"versioncode\":2},{\"isliteversion\":true,\"appid\":122,\"versioncode\":3}]";
		/*util.toUserInstallAppList(s);*/
	}
}
